package com.algorithm.ch1.cjm.other;

/**
 * 汉明距离
 * <p>
 * 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
 * <p>
 * 给出两个整数 x 和 y，计算它们之间的汉明距离。
 *
 * @Author: Jie Ming Chen
 * @Date: 2018/9/16
 * @Version 1.0
 */
public class HammingDistance {

    public int hammingDistance(int x, int y) {

        int count = 0;
        for (int i = 0; i < 32; ++i) {
            int r1 = (x & 1);
            int r2 = (y & 1);

            if (r1 != r2) {
                count ++;
            }

            x = x >> 1;
            y = y >> 1;
        }

        return count;
    }
}
